package io.terminus.paas.profiler.model

/**
 * Created by gengrong on 16/3/16.
 */
class ServiceModel() {

    constructor(serviceId: String) : this() {
        this.id = serviceId
    }

    /**
     * 服务状态枚举类
     */
    enum class STATUS {
        /**
         * 正常状态
         */
        OK,
        /**
         * 没有提供者
         */
        NO_PROVIDER,
        /**
         * 没有消费者
         */
        NO_CONSUMER
    }

    /**
     * 服务ID,默认为接口全名
     */
    var id: String? = null

    /**
     * 服务状态,详见
     * @Services.STATUS
     */
    var status: STATUS? = null

    /**
     * 消费者数量
     */
    var consumerNum: Int = 0

    /**
     * 提供者数量
     */
    var providersNum: Int = 0

    /**
     * 机器列表
     */
    var machines = hashSetOf<String>()

    /**
     * 应用列表
     */
    var applications = hashSetOf<String>()

    /**
     * 标签列表
     */
    var tags = hashSetOf<String>()

    /**
     * 权限列表
     */
    var permission: Permission? = null;
}